pwc.registerOneTimeFunction = function (invoker, func) {
    var key = func.toString();
    invoker._oneTimeFuctions = invoker._oneTimeFunctions || [];
    invoker._oneTimeFuctions[key] = true;
    setTimeout(function(){
        if (invoker._oneTimeFuctions[key]) {
            func();
            invoker._oneTimeFuctions[key] = false;
        }
    }, 0);
}